/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gob.cgr.sgrh.ejb.entidad;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;



/**
 *
 * @author MICROSOF
 */
@Entity
@Table(name = "legajo")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Legajo.findAll", query = "SELECT l FROM Legajo l"),
    @NamedQuery(name = "Legajo.findByIdLegajo", query = "SELECT l FROM Legajo l WHERE l.idLegajo = :idLegajo"),
    @NamedQuery(name = "Legajo.findByArchivo", query = "SELECT l FROM Legajo l WHERE l.archivo = :archivo"),
    @NamedQuery(name = "Legajo.findByUbicacion", query = "SELECT l FROM Legajo l WHERE l.ubicacion = :ubicacion"),
    @NamedQuery(name = "Legajo.findByDescripcion", query = "SELECT l FROM Legajo l WHERE l.descripcion = :descripcion"),
    @NamedQuery(name = "Legajo.findByIdSolicitud", query = "SELECT l FROM Legajo l WHERE l.idSolicitud = :idSolicitud"),
    @NamedQuery(name = "Legajo.listarPorPersonalSeccion", query = "SELECT l FROM Legajo l WHERE l.idPersonal.idPersonal=:idPersonal and l.idSeccionLegajo.idSeccionLegajo = :seccion")})
public class Legajo implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "ID_LEGAJO")
    private Integer idLegajo;
    @Size(max = 45)
    @Column(name = "ARCHIVO")
    private String archivo;
    @Size(max = 100)
    @Column(name = "UBICACION")
    private String ubicacion;
    @NotNull(message="Debe especificar la descripcion del Legajo")
    @Size(max = 100 , min=1 , message="Debe especificar la descripcion del Legajo")
    @Column(name = "DESCRIPCION")
    private String descripcion;
   // @NotNull(message="Debe especificar un numero del documento")
    @Size(max=10)
    @Column(name="NUMERO_DOC")
    private String numeroDoc;
    @Size(max=1)
    @Column
    private String revisado;
    
    @Column(name="ID_SOLICITUD")
    private Integer idSolicitud;
    
    
    @JoinColumn(name = "ID_PERSONAL", referencedColumnName = "ID_PERSONAL")
    @ManyToOne(optional = false)
    private Personal idPersonal;
    @JoinColumn(name = "ID_DOCUMENTO", referencedColumnName = "ID_DOCUMENTO")
    @ManyToOne(optional = false)
    private Documento idDocumento;

    @JoinColumn(name = "ID_SECCION_LEGAJO", referencedColumnName = "ID_SECCION_LEGAJO")
    @ManyToOne(optional = false)
    private SeccionLegajo idSeccionLegajo;
    
    @Transient
    private boolean checked;
    
    
    public Legajo() {
    }

    public Legajo(Integer idLegajo) {
        this.idLegajo = idLegajo;
    }

    public Integer getIdLegajo() {
        return idLegajo;
    }

    public void setIdLegajo(Integer idLegajo) {
        this.idLegajo = idLegajo;
    }

    public String getArchivo() {
        return archivo;
    }

    public void setArchivo(String archivo) {
        this.archivo = archivo;
    }

    public String getUbicacion() {
        return ubicacion;
    }

    public void setUbicacion(String ubicacion) {
        this.ubicacion = ubicacion;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public Personal getIdPersonal() {
        return idPersonal;
    }

    public void setIdPersonal(Personal idPersonal) {
        this.idPersonal = idPersonal;
    }

    public Documento getIdDocumento() {
        return idDocumento;
    }

    public void setIdDocumento(Documento idDocumento) {
        this.idDocumento = idDocumento;
    }

    public SeccionLegajo getIdSeccionLegajo() {
		return idSeccionLegajo;
	}

	public void setIdSeccionLegajo(SeccionLegajo idSeccionLegajo) {
		this.idSeccionLegajo = idSeccionLegajo;
	}

	public String getNumeroDoc() {
		return numeroDoc;
	}

	public void setNumeroDoc(String numeroDoc) {
		this.numeroDoc = numeroDoc;
	}

	public String getRevisado() {
		return revisado;
	}

	public void setRevisado(String revisado) {
		this.revisado = revisado;
	}

	public boolean isChecked() {
		checked="S".equals(revisado)?true:false;
		return checked;
	}

	public void setChecked(boolean checked) {
		revisado=checked?"S":"N";
		this.checked = checked;
	}

	

	public Integer getIdSolicitud() {
		return idSolicitud;
	}

	public void setIdSolicitud(Integer idSolicitud) {
		this.idSolicitud = idSolicitud;
	}

	@Override
    public int hashCode() {
        int hash = 0;
        hash += (idLegajo != null ? idLegajo.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Legajo)) {
            return false;
        }
        Legajo other = (Legajo) object;
        if ((this.idLegajo == null && other.idLegajo != null) || (this.idLegajo != null && !this.idLegajo.equals(other.idLegajo))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "gob.cgr.sgrh.ejb.entidad.Legajo[ idLegajo=" + idLegajo + " ]";
    }
    
}
